import Vue from 'vue'
import Vuex from 'vuex'

// 导入子模块对象
import userModules from './modules/user'

// 导入vuex数据持久化模块
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  // 注册子模块对象
  modules: {
    // 模块名：模块对象
    user: userModules
  },
  plugins: [
    // 就是把模块下的数据刷新不丢失
    // 内部 默认使用的是 localStorage 存储数据
    // 这个插件内部做了这几件事：1.自动把vuex数据本地存储一份；2.当页面刷新的时候会自动把从本地存储的数据赋值给vuex
    // 3.当vuex数据变了的时候，自动把最新的数据同步到本地存储中(让本地存储中的数据和vuex数据保持一致)
    // 注意：今后在代码中只需关注vuex的数据，这个插件会把vuex中的数据同步到本地存储
    createPersistedState({
      // 那些子模块下的数据需要持久化
      paths: ['user'],
      // 存到本地的键名
      key: 'hm-toutiao'
    })
  ]
})
